Autogenerated HTML docs for v2.26.0-103-g3bab5 
diff --git a/RelNotes/2.27.0.txt b/RelNotes/2.27.0.txt index 84eab73..7a5c7ff 100644 --- a/RelNotes/2.27.0.txt +++ b/RelNotes/2.27.0.txt 
@@ -4,17 +4,62 @@  Updates since v2.26  -------------------   +Backward compatibility notes + + * When "git describe C" finds that commit C is pointed by a signed or + annotated tag, which records T as its tagname in the object, the + command gives T as its answer. Even if the user renames or moves + such a tag from its natural location in the "refs/tags/" hierarchy, + "git describe C" would still give T as the answer, but in such a + case "git show T^0" would no longer work as expected. There may be + nothing at "refs/tags/T" or even worse there may be a different tag + instead. + + Starting from this version, "git describe" will always use the + "long" version, as if the "--long" option were given, when giving + its output based on such a misplaced tag to work around the problem. + + * "git pull" issues a warning message until the pull.rebase + configuration variable is explicitly given, which some existing + users may find annoying---those who prefer not to rebase need to + set the variable to false to squelch the warning. + +  UI, Workflows & Features    * A handful of options to configure SSL when talking to proxies have  been added.   + * Smudge/clean conversion filters are now given more information + (e.g. the object of the tree-ish in which the blob being converted + appears, in addition to its path, which has already been given). + + * When "git describe C" finds an annotated tag with tagname A to be + the best name to explain commit C, and the tag is stored in a + "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the + command gave a warning message but used A (not B) to describe C. + If C is exactly at the tag, the describe output would be "A", but + "git rev-parse A^0" would not be equal as "git rev-parse C^0". The + behavior of the command has been changed to use the "long" form + i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse. + + * "git pull" learned to warn when no pull.rebase configuration + exists, and neither --[no-]rebase nor --ff-only is given (which + would result a merge). +    Performance, Internal Implementation, Development Support etc.    * The advise API has been revamped to allow more systematic enumeration of  advice knobs in the future.   + * SHA-256 transition continues. + + * The code to interface with GnuPG has been refactored. + + * "git stash" has kept an escape hatch to use the scripted version + for a few releases, which got stale. It has been removed. +    Fixes since v2.26  ----------------- @@ -32,6 +77,14 @@  rewrite of "git rebase" in C, which has been corrected.  (merge 430b75f720 pw/advise-rebase-skip later to maint).   + * Fix "git checkout --recurse-submodules" of a nested submodule + hierarchy. + (merge 846f34d351 pb/recurse-submodules-fix later to maint). + + * The "--fork-point" mode of "git rebase" regressed when the command + was rewritten in C back in 2.20 era, which has been corrected. + (merge f08132f889 at/rebase-fork-point-regression-fix later to maint). +  * Other code cleanup, docfix, build fix, etc.  (merge 564956f358 jc/maintain-doc later to maint).  (merge 7422b2a0a1 sg/commit-slab-clarify-peek later to maint). 
diff --git a/git-config.html b/git-config.html index ac0bd68..c5dc28d 100644 --- a/git-config.html +++ b/git-config.html 
@@ -8957,18 +8957,12 @@  </dt>   <dd>   <p>  - Set to <code>false</code> to use the legacy shell script implementation of  - <a href="git-stash.html">git-stash(1)</a>. Is <code>true</code> by default, which means use  - the built-in rewrite of it in C.  + Unused configuration variable. Used in Git versions 2.22 to  + 2.26 as an escape hatch to enable the legacy shellscript  + implementation of stash. Now the built-in rewrite of it in C  + is always used. Setting this will emit a warning, to alert any  + remaining users that setting this now does nothing.   </p>  -<div class="paragraph"><p>The C rewrite is first included with Git version 2.22 (and Git for Windows  -version 2.19). This option serves as an escape hatch to re-enable the  -legacy version in case any bugs are found in the rewrite. This option and  -the shell script version of <a href="git-stash.html">git-stash(1)</a> will be removed in some  -future release.</p></div>  -<div class="paragraph"><p>If you find some reason to set this option to <code>false</code>, other than  -one-off testing, you should report the behavior difference as a bug in  -Git (see <a href="https://git-scm.com/community">https://git-scm.com/community</a> for details).</p></div>   </dd>   <dt class="hdlist1">   stash.showPatch  
diff --git a/git-fast-import.html b/git-fast-import.html index 2f137d1..779e651 100644 --- a/git-fast-import.html +++ b/git-fast-import.html 
@@ -927,6 +927,33 @@  </dl></div>   </div>   <div class="sect2">  +<h3 id="_submodule_rewriting">Submodule Rewriting</h3>  +<div class="dlist"><dl>  +<dt class="hdlist1">  +--rewrite-submodules-from=&lt;name&gt;:&lt;file&gt;  +</dt>  +<dt class="hdlist1">  +--rewrite-submodules-to=&lt;name&gt;:&lt;file&gt;  +</dt>  +<dd>  +<p>  + Rewrite the object IDs for the submodule specified by &lt;name&gt; from the values  + used in the from &lt;file&gt; to those used in the to &lt;file&gt;. The from marks should  + have been created by <code>git fast-export</code>, and the to marks should have been  + created by <code>git fast-import</code> when importing that same submodule.  +</p>  +<div class="paragraph"><p>&lt;name&gt; may be any arbitrary string not containing a colon character, but the  +same value must be used with both options when specifying corresponding marks.  +Multiple submodules may be specified with different values for &lt;name&gt;. It is an  +error not to use these options in corresponding pairs.</p></div>  +<div class="paragraph"><p>These options are primarily useful when converting a repository from one hash  +algorithm to another; without them, fast-import will fail if it encounters a  +submodule because it has no way of writing the object ID into the new hash  +algorithm.</p></div>  +</dd>  +</dl></div>  +</div>  +<div class="sect2">   <h3 id="_performance_and_compression_tuning">Performance and Compression Tuning</h3>   <div class="dlist"><dl>   <dt class="hdlist1">  @@ -2577,7 +2604,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-10 08:03:13 PDT  + 2020-03-26 18:10:39 PDT   </div>   </div>   </body>  
diff --git a/git-fast-import.txt b/git-fast-import.txt index 7889f95..77c6b3d 100644 --- a/git-fast-import.txt +++ b/git-fast-import.txt 
@@ -122,6 +122,26 @@  Relative and non-relative marks may be combined by interweaving  --(no-)-relative-marks with the --(import|export)-marks= options.   +Submodule Rewriting +~~~~~~~~~~~~~~~~~~~ + +--rewrite-submodules-from=<name>:<file>:: +--rewrite-submodules-to=<name>:<file>:: + Rewrite the object IDs for the submodule specified by <name> from the values +	used in the from <file> to those used in the to <file>. The from marks should +	have been created by `git fast-export`, and the to marks should have been +	created by `git fast-import` when importing that same submodule. ++ +<name> may be any arbitrary string not containing a colon character, but the +same value must be used with both options when specifying corresponding marks. +Multiple submodules may be specified with different values for <name>. It is an +error not to use these options in corresponding pairs. ++ +These options are primarily useful when converting a repository from one hash +algorithm to another; without them, fast-import will fail if it encounters a +submodule because it has no way of writing the object ID into the new hash +algorithm. +  Performance and Compression Tuning  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
diff --git a/git-init.html b/git-init.html index 22e314e..f13760c 100644 --- a/git-init.html +++ b/git-init.html 
@@ -750,7 +750,7 @@  <div class="sectionbody">   <div class="verseblock">   <pre class="content"><em>git init</em> [-q | --quiet] [--bare] [--template=&lt;template_directory&gt;]  - [--separate-git-dir &lt;git dir&gt;]  + [--separate-git-dir &lt;git dir&gt;] [--object-format=&lt;format]   [--shared[=&lt;permissions&gt;]] [directory]</pre>   <div class="attribution">   </div></div>  @@ -800,6 +800,15 @@  </p>   </dd>   <dt class="hdlist1">  +--object-format=&lt;format&gt;  +</dt>  +<dd>  +<p>  +Specify the given object format (hash algorithm) for the repository. The valid  +values are <em>sha1</em> and (if enabled) <em>sha256</em>. <em>sha1</em> is the default.  +</p>  +</dd>  +<dt class="hdlist1">   --template=&lt;template_directory&gt;   </dt>   <dd>  @@ -972,7 +981,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-10 08:03:13 PDT  + 2020-03-26 18:10:39 PDT   </div>   </div>   </body>  
diff --git a/git-init.txt b/git-init.txt index 32880aa..adc6adf 100644 --- a/git-init.txt +++ b/git-init.txt 
@@ -10,7 +10,7 @@  --------  [verse]  'git init' [-q | --quiet] [--bare] [--template=<template_directory>] - [--separate-git-dir <git dir>] + [--separate-git-dir <git dir>] [--object-format=<format]  [--shared[=<permissions>]] [directory]     @@ -48,6 +48,11 @@  Create a bare repository. If `GIT_DIR` environment is not set, it is set to the  current working directory.   +--object-format=<format>:: + +Specify the given object format (hash algorithm) for the repository. The valid +values are 'sha1' and (if enabled) 'sha256'. 'sha1' is the default. +  --template=<template_directory>::    Specify the directory from which templates will be used. (See the "TEMPLATE 
diff --git a/git.html b/git.html index 5f0b4b7..ab60722 100644 --- a/git.html +++ b/git.html 
@@ -2617,6 +2617,17 @@  variables such as GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY&#8230;   </p>   </dd>  +<dt class="hdlist1">  +<code>GIT_DEFAULT_HASH_ALGORITHM</code>  +</dt>  +<dd>  +<p>  + If this variable is set, the default hash algorithm for new  + repositories will be set to this value. This value is currently  + ignored when cloning; the setting of the remote repository  + is used instead. The default is "sha1".  +</p>  +</dd>   </dl></div>   </div>   <div class="sect2">  @@ -3366,7 +3377,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-10 08:03:13 PDT  + 2020-03-26 18:10:39 PDT   </div>   </div>   </body>  
diff --git a/git.txt b/git.txt index b0672bd..9d6769e 100644 --- a/git.txt +++ b/git.txt 
@@ -493,6 +493,12 @@ 	details. This variable has lower precedence than other path 	variables such as GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY...   +`GIT_DEFAULT_HASH_ALGORITHM`:: +	If this variable is set, the default hash algorithm for new +	repositories will be set to this value. This value is currently +	ignored when cloning; the setting of the remote repository +	is used instead. The default is "sha1". +  Git Commits  ~~~~~~~~~~~  `GIT_AUTHOR_NAME`:: 
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html index 763dbf5..75401df 100644 --- a/howto/keep-canonical-history-correct.html +++ b/howto/keep-canonical-history-correct.html 
@@ -938,7 +938,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:48 PDT  + 2020-03-26 18:11:59 PDT   </div>   </div>   </body>  
diff --git a/howto/maintain-git.html b/howto/maintain-git.html index b5faba3..8eca20e 100644 --- a/howto/maintain-git.html +++ b/howto/maintain-git.html 
@@ -1469,7 +1469,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:48 PDT  + 2020-03-26 18:11:59 PDT   </div>   </div>   </body>  
diff --git a/howto/new-command.html b/howto/new-command.html index b2815f2..429dcbc 100644 --- a/howto/new-command.html +++ b/howto/new-command.html 
@@ -863,7 +863,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:42 PDT  + 2020-03-26 18:11:53 PDT   </div>   </div>   </body>  
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html index 3699169..38241ae 100644 --- a/howto/rebase-from-internal-branch.html +++ b/howto/rebase-from-internal-branch.html 
@@ -895,7 +895,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:48 PDT  + 2020-03-26 18:11:59 PDT   </div>   </div>   </body>  
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html index f31c295..a2a4cbd 100644 --- a/howto/rebuild-from-update-hook.html +++ b/howto/rebuild-from-update-hook.html 
@@ -847,7 +847,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:47 PDT  + 2020-03-26 18:11:58 PDT   </div>   </div>   </body>  
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html index c5bb93f..58060de 100644 --- a/howto/recover-corrupted-blob-object.html +++ b/howto/recover-corrupted-blob-object.html 
@@ -880,7 +880,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:46 PDT  + 2020-03-26 18:11:57 PDT   </div>   </div>   </body>  
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html index f89986c..bf41add 100644 --- a/howto/recover-corrupted-object-harder.html +++ b/howto/recover-corrupted-object-harder.html 
@@ -1189,7 +1189,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:47 PDT  + 2020-03-26 18:11:58 PDT   </div>   </div>   </body>  
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html index 4e29ea6..f95f1c8 100644 --- a/howto/revert-a-faulty-merge.html +++ b/howto/revert-a-faulty-merge.html 
@@ -1025,7 +1025,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:46 PDT  + 2020-03-26 18:11:56 PDT   </div>   </div>   </body>  
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html index 4840f3f..f73ba08 100644 --- a/howto/revert-branch-rebase.html +++ b/howto/revert-branch-rebase.html 
@@ -907,7 +907,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:42 PDT  + 2020-03-26 18:11:53 PDT   </div>   </div>   </body>  
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html index f1510bc..05a90c4 100644 --- a/howto/separating-topic-branches.html +++ b/howto/separating-topic-branches.html 
@@ -841,7 +841,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:45 PDT  + 2020-03-26 18:11:56 PDT   </div>   </div>   </body>  
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html index 16ebb4d..09b6096 100644 --- a/howto/setup-git-server-over-http.html +++ b/howto/setup-git-server-over-http.html 
@@ -1071,7 +1071,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:45 PDT  + 2020-03-26 18:11:55 PDT   </div>   </div>   </body>  
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html index 23dc6d7..c107234 100644 --- a/howto/update-hook-example.html +++ b/howto/update-hook-example.html 
@@ -930,7 +930,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:44 PDT  + 2020-03-26 18:11:55 PDT   </div>   </div>   </body>  
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html index d82b91c..8ec784c 100644 --- a/howto/use-git-daemon.html +++ b/howto/use-git-daemon.html 
@@ -791,7 +791,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:44 PDT  + 2020-03-26 18:11:55 PDT   </div>   </div>   </body>  
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html index 269561d..bad3c33 100644 --- a/howto/using-merge-subtree.html +++ b/howto/using-merge-subtree.html 
@@ -848,7 +848,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:43 PDT  + 2020-03-26 18:11:54 PDT   </div>   </div>   </body>  
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html index 46ebea7..7e1e3c6 100644 --- a/howto/using-signed-tag-in-pull-request.html +++ b/howto/using-signed-tag-in-pull-request.html 
@@ -952,7 +952,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2020-03-25 14:28:43 PDT  + 2020-03-26 18:11:54 PDT   </div>   </div>   </body>